package com.nengchuan.kbms.dfs.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.nengchuan.kbms.common.IPageService;
import com.nengchuan.kbms.dfs.annotation.UserOperateLogger;
import com.nengchuan.kbms.dfs.entity.dto.UserOperateCreateListDTO;
import com.nengchuan.kbms.dfs.entity.dto.UserOperateCreatePageDTO;
import com.nengchuan.kbms.dfs.entity.dto.UserOperateDownloadListDTO;
import com.nengchuan.kbms.dfs.entity.dto.UserOperateDownloadPageDTO;
import com.nengchuan.kbms.dfs.entity.po.UserOperateHistory;
import com.nengchuan.kbms.dfs.entity.vo.OperateTopVO;
import com.nengchuan.kbms.dfs.entity.vo.UserOperateCreateVO;
import com.nengchuan.kbms.dfs.entity.vo.UserOperateDownloadVO;

import java.util.List;

/**
 * <p>
 * 用户操作历史 服务类
 * </p>
 *
 * @author abe
 * @since 2020-04-01
 */
public interface UserOperateHistoryService extends IPageService<UserOperateHistory> {

    /**
     * 操作排行
     */
    List<OperateTopVO> operateTop(UserOperateLogger.Type type);

    /**
     * 我的创建（分页
     */
    IPage<UserOperateCreateVO> createPage(UserOperateCreatePageDTO pageDTO);

    /**
     * 我的导出（分页
     */
    IPage<UserOperateDownloadVO> downloadPage(UserOperateDownloadPageDTO pageDTO);

    /**
     * 我的创建列表
     */
    List<UserOperateCreateVO> createList(UserOperateCreateListDTO listDTO);

    /**
     * 我的导出列表
     */
    List<UserOperateDownloadVO> downloadList(UserOperateDownloadListDTO listDTO);
}
